const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')

module.exports = {
    // 配置打包入口JS文件
    entry: './src/main.js',
    // 配置输出目录
    output: {
        // 配置打包后输出目录
        path: path.resolve(__dirname, 'dist'),
        // 配置输出文件名
        filename: 'bundle.js'
    },
    plugins: [
        new HtmlWebpackPlugin({
            // 配置html文件的打包入口
            template: './public/index.html'
        }),
        new ExtractTextPlugin('main.css')
    ],
    // 配置loader(加载器)，加强webpack对文件的解析能力
    module: {
        rules: [
            {
                // 匹配所有的css文件
                test: /\.css$/,
                // 使用style-loader,css-loader将css文件解析并打包，然后将样式插入DOM中
                // use数组中的元素由右向左执行，所有的css文件都会被打包到js中去
                use: ExtractTextPlugin.extract({
                    use: 'css-loader',
                    fallback: 'style-loader'
                })
            }
        ]
    }
}